﻿namespace ClassLibrary.BusinessLayer.BusinessObjects
{
    using System;

    [Serializable, ClassTable("ProjectGroup", true)]
    public class ProjectGroup : ParentTableClass
    {
        private DateTime dteCreateDate;
        private DateTime dteFirstFilingDate;
        private DateTime dtePCTPriorityDate;
        private DateTime dtePriorityDate;
        private DateTime dteUpdateDate;
        private string strApplicant;
        private string strClient;
        private string strCreateBy;
        private string strDescription;
        private string strInventor;
        private string strOfficerEmail;
        private string strOfficerName;
        private string strOfficerRole;
        private string strOwnerGroupID;
        private string strPCTCountry;
        private string strProjectClass;
        private string strProjectGroupId;
        private string strTitle;
        private string strTitleSubject;
        private string strType;
        private string strUpdateBy;

        [ClassProperty(false, true, false, false, false, "Applicant", "@Applicant", ClassPropertyAttribute.DBTypes.Varchar)]
        public string Applicant
        {
            get
            {
                return this.strApplicant;
            }
            set
            {
                this.strApplicant = value;
            }
        }

        [ClassProperty(false, true, false, false, false, "Client", "@Client", ClassPropertyAttribute.DBTypes.Varchar)]
        public string Client
        {
            get
            {
                return this.strClient;
            }
            set
            {
                this.strClient = value;
            }
        }

        [ClassProperty(false, true, false, false, false, "CreateBy", "@CreateBy", ClassPropertyAttribute.DBTypes.Varchar)]
        public string CreateBy
        {
            get
            {
                return this.strCreateBy;
            }
            set
            {
                this.strCreateBy = value;
            }
        }

        [ClassProperty(false, true, false, false, false, "CreateDate", "@CreateDate", ClassPropertyAttribute.DBTypes.DateTime)]
        public DateTime CreateDate
        {
            get
            {
                return this.dteCreateDate;
            }
            set
            {
                this.dteCreateDate = value;
            }
        }

        [ClassProperty(false, true, false, false, false, "Description", "@Description", ClassPropertyAttribute.DBTypes.Varchar)]
        public string Description
        {
            get
            {
                return this.strDescription;
            }
            set
            {
                this.strDescription = value;
            }
        }

        [ClassProperty(false, true, false, false, false, "FirstFilingDate", "@FirstFilingDate", ClassPropertyAttribute.DBTypes.DateTime)]
        public DateTime FirstFilingDate
        {
            get
            {
                return this.dteFirstFilingDate;
            }
            set
            {
                this.dteFirstFilingDate = value;
            }
        }

        [ClassProperty(false, true, false, false, false, "Inventor", "@Inventor", ClassPropertyAttribute.DBTypes.Varchar)]
        public string Inventor
        {
            get
            {
                return this.strInventor;
            }
            set
            {
                this.strInventor = value;
            }
        }

        [ClassProperty(false, true, false, false, false, "OfficerEmail", "@OfficerEmail", ClassPropertyAttribute.DBTypes.Varchar)]
        public string OfficerEmail
        {
            get
            {
                return this.strOfficerEmail;
            }
            set
            {
                this.strOfficerEmail = value;
            }
        }

        [ClassProperty(false, true, false, false, false, "OfficerName", "@OfficerName", ClassPropertyAttribute.DBTypes.Varchar)]
        public string OfficerName
        {
            get
            {
                return this.strOfficerName;
            }
            set
            {
                this.strOfficerName = value;
            }
        }

        [ClassProperty(false, true, false, false, false, "OfficerRole", "@OfficerRole", ClassPropertyAttribute.DBTypes.Varchar)]
        public string OfficerRole
        {
            get
            {
                return this.strOfficerRole;
            }
            set
            {
                this.strOfficerRole = value;
            }
        }

        [ClassProperty(false, true, false, false, false, "OwnerGroupID", "@OwnerGroupID", ClassPropertyAttribute.DBTypes.Varchar)]
        public string OwnerGroupID
        {
            get
            {
                return this.strOwnerGroupID;
            }
            set
            {
                this.strOwnerGroupID = value;
            }
        }

        [ClassProperty(false, true, false, false, false, "PCTCountry", "@PCTCountry", ClassPropertyAttribute.DBTypes.DateTime)]
        public string PCTCountry
        {
            get
            {
                return this.strPCTCountry;
            }
            set
            {
                this.strPCTCountry = value;
            }
        }

        [ClassProperty(false, true, false, false, false, "PCTPriorityDate", "@PCTPriorityDate", ClassPropertyAttribute.DBTypes.DateTime)]
        public DateTime PCTPriorityDate
        {
            get
            {
                return this.dtePCTPriorityDate;
            }
            set
            {
                this.dtePCTPriorityDate = value;
            }
        }

        [ClassProperty(false, true, false, false, false, "PriorityDate", "@PriorityDate", ClassPropertyAttribute.DBTypes.DateTime)]
        public DateTime PriorityDate
        {
            get
            {
                return this.dtePriorityDate;
            }
            set
            {
                this.dtePriorityDate = value;
            }
        }

        [ClassProperty(false, true, false, false, false, "ProjectClass", "@ProjectClass", ClassPropertyAttribute.DBTypes.DateTime)]
        public string ProjectClass
        {
            get
            {
                return this.strProjectClass;
            }
            set
            {
                this.strProjectClass = value;
            }
        }

        [ClassProperty(false, true, false, false, false, "ProjectGroupId", "@ProjectGroupId", ClassPropertyAttribute.DBTypes.Varchar)]
        public string ProjectGroupId
        {
            get
            {
                return this.strProjectGroupId;
            }
            set
            {
                this.strProjectGroupId = value;
            }
        }

        [ClassProperty(false, true, false, false, false, "Title", "@Title", ClassPropertyAttribute.DBTypes.Varchar)]
        public string Title
        {
            get
            {
                return this.strTitle;
            }
            set
            {
                this.strTitle = value;
            }
        }

        [ClassProperty(false, true, false, false, false, "TitleSubject", "@TitleSubject", ClassPropertyAttribute.DBTypes.Varchar)]
        public string TitleSubject
        {
            get
            {
                return this.strTitleSubject;
            }
            set
            {
                this.strTitleSubject = value;
            }
        }

        [ClassProperty(false, true, false, false, false, "Type", "@Type", ClassPropertyAttribute.DBTypes.Varchar)]
        public string Type
        {
            get
            {
                return this.strType;
            }
            set
            {
                this.strType = value;
            }
        }

        [ClassProperty(false, true, false, false, false, "UpdateBy", "@UpdateBy", ClassPropertyAttribute.DBTypes.Varchar)]
        public string UpdateBy
        {
            get
            {
                return this.strUpdateBy;
            }
            set
            {
                this.strUpdateBy = value;
            }
        }

        [ClassProperty(false, true, false, false, false, "UpdateDate", "@UpdateDate", ClassPropertyAttribute.DBTypes.DateTime)]
        public DateTime UpdateDate
        {
            get
            {
                return this.dteUpdateDate;
            }
            set
            {
                this.dteUpdateDate = value;
            }
        }
    }
}

